<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{padding: 0;margin: 0;}
        .box{
            width: 100px;
            height: 100px;
            background: #000;
            position: fixed;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>
<script>
    const box = document.querySelector('.box')

    function move(){
        let flag = 0;
        function moves(){
            flag += 5;
            box.style.left = flag + 'px';
            const id = requestAnimationFrame(moves)
            if(flag > 300){
                cancelAnimationFrame(id)
            }
        }
        moves()
    }

    box.addEventListener('click',() => {
        move()
    })

</script>